#ifndef REDIS_SUBSCRIBER_H  
#define REDIS_SUBSCRIBER_H  
  
#include <stdlib.h>  
#include <hiredis/async.h>  
#include <hiredis/adapters/libevent.h>  
#include <string>  
#include <event2/event.h>  
#include <vector>  
#include <unistd.h>  
#include <pthread.h>  
#include <semaphore.h>  
#include <boost/tr1/functional.hpp>  

using namespace std;

/**
 * 函数入口
 * 
 */
void start_init() __attribute__((constructor));

/**
 *
 * 取历史数据
 */
int  connectRedis();	

void getOldData(); 		

/**
 * 监听事件并做处理
 * 
 */
bool eventInit();      

bool eventConnect();  

bool eventDisconnect();

bool subscribe();  

static void connect_callback(const redisAsyncContext *redis_context,  
		int status);  

static void disconnect_callback(const redisAsyncContext *redis_context,  
		int status);  

static void command_callback(redisAsyncContext *redis_context,  
		void *reply, void *privdata);  

/**
 * 从Map里取数据
 *
 */
const std::string LookupMapValue(const char* pKey);

bool uninit();	


#endif 

